#pragma once

#include <unistd.h>
#include <assert.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>

//缓冲区的大小
#define SIZE 1024
//刷新策略，只有一个比特位为1
#define SYNC_NOW    1
#define SYNC_LINE   2
#define SYNC_FULL   4

//自定义FILE结构体
typedef struct _FILE{
    int flags;              //刷新策略
    int fileno;             //文件描述符
    int cap;                //缓冲区的容量
    int size;               //缓冲区的数据个数
    char buffer[SIZE];      //缓冲区
}FILE_;


FILE_* fopen_(const char* path_namne, const char* mode);
//这个fwrite简化了，系统的太复杂，不好写
//*ptr是要写的内容，num是写几个，fp确定写到哪个文件
void fwrite_(const void* ptr, int num, FILE_* fp);
void fflush_(FILE_* fp);
void fclose_(FILE_* fp);
